package com.wellsoft.pt.app.dingtalk.service;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import com.wellsoft.context.jdbc.support.QueryItem;
import com.wellsoft.pt.app.dingtalk.dao.MultiOrgDingUserInfoDao;
import com.wellsoft.pt.app.dingtalk.entity.MultiOrgDingUserInfo;
import com.wellsoft.pt.jpa.service.JpaService;

/**
 * Description: 钉钉用戶信息service
 * 
 * @author bryanlin
 * @date 2020年5月18日
 * @version 1.0
 * 
 *          <pre>
 * 修改记录:
 * 修改后版本	修改人		修改日期			修改内容
 * 2020年5月18日.1	bryanlin		2020年5月18日  	Create
 *          </pre>
 *
 */
public interface MultiOrgDingUserInfoService extends JpaService<MultiOrgDingUserInfo, MultiOrgDingUserInfoDao, String> {

	/**
	 * 钉钉事件回调，同步用户操作
	 * 
	 * @param userIds
	 *            用户id集合
	 * @param eventType
	 *            事件类型
	 */
	public void saveUserFromDingtalkEventCallBack(JSONArray userIds, String eventType);
	
	/**
	 * 更新钉钉用户数据
	 * @param userIds
	 */
	public void updateUserFromDingtalkEventCallBack(JSONArray userIds);
	
	/**
	 * 删除用户数据
	 * @param userIds
	 */
	public void deleteUserFromDingtalkEventCallBack(JSONArray userIds);

	/**
	 * 新增用户
	 * @param userId
	 */
	public void addUserFromDingtalk(String userId, String accessToken);

	/**
	 * 新增用户
	 * @param userId
	 */
	public void addUserFromDingtalk(JSONObject userobj);

	/**
	 * 根据钉钉唯一标识获取数据
	 * @param unionid 钉钉用户唯一标识
	 * @param userId 钉钉用户id
	 * @return
	 */
	public QueryItem getMultiOrgDingUserInfoByMap(String unionid, String userId);

	/**
	 * 根据平台用户ID获取钉钉用户信息
	 * 
	 * @param userId
	 * @return
	 */
	public MultiOrgDingUserInfo getByUserId(String userId);
}
